/************************************************************************
                        RequestData.h.h 
RequestData is a request with parameters.
inherits from class Request.
parameters are added with a name.
all parameters are kept in string format.
*/
#ifndef REQUESTDATA_H
#define REQUESTDATA_H
#include "Request.h"
#include <map>
#include <iostream>
#include <iomanip>
using namespace std;
/**
  * class RequestData
  */
typedef map<string, string> ParamList;//this map holds <parameter name,parameter>
class RequestData : public Request
{
public:
		// Constructors/Destructors
		RequestData (int type);
		virtual ~RequestData ( );
		virtual string getParameter(string column)const;//returns parameter by name
		virtual void addParameter(string columnName,string data);//adds a parameter by name
		virtual void print_parameters();//this prints parameters , sorted by their names
protected:
private:
	RequestData();
	RequestData(const RequestData &r);
	RequestData &operator=(RequestData &rhs);
	ParamList m_Parameters;//the parameters container
};
#endif // REQUESTDATA_H
